国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[翻譯]一個新式的基于文本的瀏覽器 Browsh

BlackMass / 1605人閱讀

摘要:介紹介紹什么是什么是是一個純文本瀏覽器,可以運行在大多數的終端環境和任何瀏覽器。設計設計包含一個最小的客戶端和一個瀏覽器。當啟動時,它會查找兼容的瀏覽器目前只有并以無頭模式啟動它。瀏覽器啟動后,將打開遠程調試連接并安裝擴展。

介紹

什么是Browsh?

Browsh是一個純文本瀏覽器,可以運行在大多數的TTY終端環境和任何瀏覽器。目前1 ,終端客戶端比瀏覽器客戶端更先進2

TTY 客戶端

終端客戶端即時更新和交付,以便于體驗新的功能,例如,你可以觀看視頻。它使用UTF-8半塊技巧(?)3從每個字符單元中獲取2中顏色,從而仿真基本圖形。對那些支持它的終端,除了鍵盤輸入,它也可以理解鼠標輸入。因此,你可以點擊鏈接,甚至在素描彩繪APP中繪制線條。

瀏覽器客戶端

瀏覽器客戶端有些復雜,容易混淆。Browsh在另一個瀏覽器中運行解析,然后在瀏覽器客戶端上呈現出簡單HTML和純文本。Browsh輸出的HTML和文本是極其輕量級的,這一點很關鍵。在2018年,普通的網站寫入,需要下載大約3M數據,并發出超過100獨立HTTP請求。換到Browsh,它大約需要15kb,2個HTTP請求-一個用于HTML/文本,另一個用于favicon。

目前,HTML/文本 輸出非實時更新,也非交互式,希望瀏覽器客戶端最終具有與TTY客戶端相同的功能。

安裝

請參閱安裝頁面。

設計

Browsh包含一個最小的Golang CLI客戶端和一個瀏覽器webextension。當CLI啟動時,它會查找兼容的瀏覽器(目前只有Firefox)并以無頭模式4啟動它。瀏覽器啟動后,將打開遠程調試連接并安裝擴展。

當網頁在瀏覽器中加載時,自定義腳本將注入頁面,然后在webextension中連接到Browsh的后臺進程。此后臺進程本身通過websocket連接到CLI客戶端。

每頁內容腳本還應用一些自定義CSS,以嘗試使頁面盡可能接近剛性網格,如終端單元所強制執行的那樣。這并不總是成功的,因為網頁經常小心地將元素定位到不是字符單元格的像素值 - 因此當2個字符想要占據相同的單元格時,有時需要做出妥協。

為了節省必須解析每個角色的顏色和可見度,Browsh使用自定義的單字形全塊字體,其中每個字符都是:▇。解析元素的計算樣式在計算上是昂貴的。因此,為了獲得字符的顏色,框架構建器檢查頁面的屏幕截圖的像素值,該像素值對應于字符的位置。這還有一個額外的好處,即能夠在不解析CSS的情況下檢測角色的可見性 - 如果在顯示和隱藏文本時像素值改變顏色,則角色是可見的。當然有邊緣情況,但它們的頻率意味著處理它們仍然比CSS解析更便宜。

在TTY客戶端的情況下,幀的圖形是在原始頁面的隱藏文本狀態期間生成的。然后將此屏幕截圖縮放到與活動終端相同的大小。然后將那些像素值轉換為終端顏色轉義碼。最后,文本在圖形上分層并呈現給終端。

譯者注:
1.官網顯示該介紹更新于2018年7月13日
2.更先進的意思大略是指終端客戶端的完善度較瀏覽器客戶端高
3.UTF-8 方塊元素 HTML字符集
4.headless mode:指可以在不打開UI界面的情況下使用瀏覽器

英文原文:https://www.brow.sh/docs/introduction/

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/2010.html

相關文章

  • 覽器顯示及交互背后原理

    摘要:瀏覽器顯示及交互背后的原理引子因為筆者愛編程的光頭強近期在寫一本關于小程序入門的書籍。不基于瀏覽器背后的運行原理,是很難說清楚虛擬被引入的真正原因和最大好處的。它是瀏覽器的核心部分。 瀏覽器顯示及交互背后的原理 引子 因為筆者(愛編程的光頭強)近期在寫一本關于小程序入門的書籍。其中有一章是介紹虛擬DOM的,它是位于Javascript和真正DOM之間的一層緩存層。為什么引入它,為什么它...

    hatlonely 評論0 收藏0
  • 覽器顯示及交互背后原理

    摘要:瀏覽器顯示及交互背后的原理引子因為筆者愛編程的光頭強近期在寫一本關于小程序入門的書籍。不基于瀏覽器背后的運行原理,是很難說清楚虛擬被引入的真正原因和最大好處的。它是瀏覽器的核心部分。 瀏覽器顯示及交互背后的原理 引子 因為筆者(愛編程的光頭強)近期在寫一本關于小程序入門的書籍。其中有一章是介紹虛擬DOM的,它是位于Javascript和真正DOM之間的一層緩存層。為什么引入它,為什么它...

    idisfkj 評論0 收藏0
  • Html/Css/Jquery知識點集錦

    摘要:首先,巧妙的使用這一標記,將游覽器從所有情況中分離出來。接著,再次使用將和分離開來,這樣已經獨立識別。元素不能用作語義用途以外的其他目的。Html1、Html5有哪些新特性,移除了哪些元素?如何處理HTML5新標簽的瀏覽器兼容問題?如何區別HTML和HTML5?HTML5 現在已經不是 SGML 的子集,主要是關于圖像,位置,存儲,多任務等功能的增加。拖拽釋放(Drag and drop) ...

    shiweifu 評論0 收藏0
  • [Python3]Python面向對象程序設計

    摘要:于發表了著名的有害論的論文引起了長達數年的論戰并由此產生了結構化程序設計方法。到現在為止面向對象已經成為了主流的開發思想。面向對象的程序設計優點解決了程序的擴展性。 [Python3]Python面向對象的程序設計 一、面向對象的程序設計的由來 1.第一階段:面向機器,1940年以前 最早的程序設計都是采用機器語言來編寫的,直接使用二進制碼來表示機器能夠識別和執行的指令和數據。 簡單來...

    OpenDigg 評論0 收藏0
  • python 中type和object關系

    摘要:這說明類已經處于繼承鏈條的頂端,是所有類的父類。這就是說這一元類的父類是。我們來捋一捋,也就是說類是由元類創建的,但是類又繼承了類。元類的類則是由元類自身創建的。 學習python的同學都知道這么幾句話 object類是所有新式類的父類。 type是所有類的類。 那么type和object是什么關系呢?object是一個新式類,我們可以通過object.__class__和obje...

    Keven 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<